// pages/login/login.js
import util from '../../../utils/util'
const app = getApp();
const http = app.http;
const userInfoManager = app.userInfoManager;
Page({
  /**
   * 页面的初始数据
   */
  data: {
    loginEnable: false, //登录按钮是否可以按钮
    phoneValue: '',
    pwdValue: '',
    isShowPwd: '', //是否显示密码
    appLogoUrl: '',
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    let phone = options.phone;
    if (phone) {
      this.setData({
        phoneValue: phone
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {
    // wx.showToast({
    //   title: '请先登录',
    //   icon: 'none',
    //   image: '',
    //   duration: 1500,
    //   mask: false,
    //   success: (result) => {

    //   },
    //   fail: () => { },
    //   complete: () => { }
    // });

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {},

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  },
  /**
   * 手机号输入监听
   * @param {} e 
   */
  onPhoneInputListener(e) {
    let phoneValue = util.validateNumber(e.detail.value);
    this.setData({
      phoneValue
    })
    this.canClickLogin();
  },
  onPwdInputListener(e) {
    // let pwdValue = util.validateNumber(e.detail.value)
    this.setData({
      pwdValue: e.detail.value
    })
    this.canClickLogin();
  },
  /**
   * 是否显示密码
   * @param {*} e 
   */
  onClickEye(e) {
    this.setData({
      isShowPwd: !this.data.isShowPwd
    })
  },
  onClickForgetPwd(e) {
    wx.navigateTo({
      url: '/pages/login-process/forgetpassword/forgetpassword?changePwd=false&fromLogin=true',
      success: (result) => {

      },
      fail: () => {},
      complete: () => {}
    });
  },
  /**
   * 点击登录
   * @param {*} e 
   */
  onClickLogin(e) {
    if (!this.data.loginEnable) return;
    http.getCertificate().then(res => {
      if (res.code == 0) {
        const mpAppInfo = app.mpAppInfo;
        mpAppInfo.setToken(res.data);
        return http.loginPwd(this.data.phoneValue, this.data.pwdValue);
      } else {
        wx.showToast({
          duration: 1000,
          icon: 'none',
          title: res.msg
        })
        return Promise.reject();
      }
    }).then(res => {
      if (res.code === 0) {
        const mpAppInfo = app.mpAppInfo;
        mpAppInfo.setToken(res.data.userToken);
        return http.getCurrentUserInfo();
      } else if (res.code === 41021) {
        wx.showToast({
          duration: 1000,
          icon: 'none',
          title: res.msg
        })
        wx.navigateTo({
          url: '/pages/login-process/forgetpassword/forgetpassword?changePwd=true&fromLogin=true',
          success: (result) => {

          },
          fail: () => {},
          complete: () => {}
        });
        return Promise.reject();
      } else {
        wx.showToast({
          duration: 1000,
          icon: 'none',
          title: res.msg
        })
        return Promise.reject();
      }
    }).then(res => {
      if (res.code == 0) {
        if (res.data) {
          if (res.data.roleList[0].name !== "食材供应商") {
            wx.showToast({
              duration: 1000,
              icon: 'none',
              title: "当前账号无应用权限"
            })
            return;
          }
          userInfoManager.setUserInfo(res.data);
          wx.showToast({
            duration: 1000,
            icon: 'none',
            title: "登录成功"
          })
          wx.reLaunch({
            url: '/pages/index/index',
            success: (result) => {

            },
            fail: () => {},
            complete: () => {}
          });

        } else {
          wx.showToast({
            duration: 1000,
            icon: 'none',
            title: "当前账号异常，请联系管理员"
          })
        }

      } else {
        wx.showToast({
          duration: 1000,
          icon: 'none',
          title: res.msg
        })
      }
    }).catch(error => {
      // console.log("error");
      userInfoManager.clearUserInfo();
    });
  },
  /**
   * 登录按钮是否可以点击
   */
  canClickLogin() {
    const b = this.data.phoneValue && this.data.phoneValue.length === 11 && this.data.pwdValue && this.data.pwdValue.length >= 6;
    this.setData({
      loginEnable: b
    })
  },
  getPhonenumber(e) {

  }
})